package jk.framework.canary.core.repository;

import jk.framework.canary.core.po.VersionInfo;

/**
 * @author cuichao
 * 灰度版本信息仓库
 */
public interface VersionInfoRepository {

    /**
     * 添加一个版本信息
     *
     * @param version
     */
     void add(VersionInfo version);


    /**
     * 发布一个版本信息
     *
     * @param version
     */
    void publish(VersionInfo version);

    /**
     * 完成一个版本的发布
     *
     * @param version
     */
    void completion(VersionInfo version);


    /**
     * 获取到目标版本号
     *
     * @return
     */
    VersionInfo targetVersion(String routeKey);


    /**
     * 获取本地当前版本号
     * @return
     */
    VersionInfo localCurrentVersion();


}
